from django.urls import path, re_path
from . import views


urlpatterns = [
    # ——————————————————————request部分——————————————————————————
    # 提取请求地址中的查询参数
    # http://127.0.0.1:8000/querystring/?name=zxc&age=18
    # 注意点：path()方法中正则表达式中不能将查询参数写入，查询字符串不是路径，是路径参数，正则中只需要匹配路径即可
    path('querystring/', views.QSParamView.as_view()),

    # 提取表单类型请求体数据（name和password）
    # http://127.0.0.1:8000/formdata/
    path('formdata/', views.FormDataParamView.as_view()),

    # 提取表单类型请求体数据（name和password）
    # http://127.0.0.1:8000/jsondata/
    path('jsondata/', views.JsonParamView.as_view()),

    # 使用django默认自带的路由解析器提取路径参数
    # http://127.0.0.1:8000/urlparam/18/
    path('urlparam1/<int:num>/', views.URLParamView.as_view()),

    # 自定义路由解析器提取路径中的电话号码
    # http://127.0.0.1:8000/urlparam2/18911520667/
    path('urlparam2/<mobile:tel>/', views.URLParamView2.as_view()),

    # 使用url()或者re_path()书写正则表达式代替路由解析器
    # http://127.0.0.1:8000/urlparam3/18911520667/
    re_path(r'^urlparam3/(?P<tel>1[3-9]\d{9})/$', views.URLParamView3.as_view()),
    # url(r'^urlparam3/(?P<tel>1[3-9]\d{9})/$', views.URLParamView3.as_view()),

    # 测试request.META获取相应参数
    # http://127.0.0.1:8000/urlparam3/
    path('urlparam3/', views.HeadersParamView.as_view()),
    # url(r'^urlparam3/(?P<tel>1[3-9]\d{9})/$', views.URLParamView3.as_view()),

    # ——————————————————————response部分——————————————————————————
    #http://127.0.0.1:8000/view1/
    path('view1/', views.ResponseView1.as_view()),

    #http://127.0.0.1:8000/view2/
    path('view2/', views.JsonResponseView.as_view()),

    # 首页路径
    # http://127.0.0.1:8000/index/
    # path('index/', views.IndexView.as_view()),
    # 给子应用首页路由起别名index
    path('index/', views.IndexView.as_view(), name="index"),

    # 登录路径
    # http://127.0.0.1:8000/login/
    path('login/', views.LoginRedirectView.as_view()),

    # 登录路径
    # http://127.0.0.1:8000/login2/
    path('login2/', views.LoginRedirectView2.as_view()),


]